package com.pignest.hotel.dao;

import java.util.Date;
import java.util.List;

import com.pignest.hotel.beans.Living;
import com.pignest.hotel.beans.LivingSpecifics;
import com.pignest.hotel.beans.Member;
import com.pignest.hotel.beans.Room;
import com.pignest.hotel.beans.TbAccounts;
import com.pignest.hotel.beans.TbGoods;

public interface LivingDao {

	/**
	 * 获取某房间当前的入住信息
	 * */
	Living getLivingByRoom(Room room);
	/**
	 * 获取某房间的入住List
	 * */
	public List<Living> getLivingListByRoom(Room room);
	
	/**
	 * 获取某会员当前的入住信息
	 * */
	Living getLivingByMember(Member M);
	public List<Living> queryLivingNotPage(final String sCustormName,final String sLiveState,
			final String sRoomName,final String sRoomType,final String sSex,final Date startLivingDate,final Date endLivingDate,final String oType);
	public List <Living> queryPageHQL(final String sCustormName,final String sLiveState,
			final String sRoomName,final String sRoomType,final String sSex,final Date startLivingDate,final Date endLivingDate,final String oType,
			final int start,final int length);
	
	/**计算当前入住余额,即要结算的金额
	 * 当前数据库值正数为客户充值负数为消费的
	 * sum()则为结算的金额
	 * **/
	@Deprecated
	public int queryConsumption(String livingId);
	/**计算当前多入住余额,即要结算的金额
	 * 当前数据库值正数为客户充值负数为消费的
	 * sum()则为结算的金额
	 * **/
	@Deprecated
	public int queryAllConsum(List<Living> list);
	
	/**计算个人房间入住消费金额
	 * @param isPositive true 返回为正数 false 返回负数
	 * **/
    @Deprecated
	public int querySingleConsum(String livingId,boolean isPositive);
	/**计算个人结账时
	 * 房间入住消费金额
	 * @param isPositive true 返回为正数 false 返回负数
	 * **/
    @Deprecated
	public int queryCheckSingleConsum(String livingId,boolean isPositive);
	
	/**入住下的所有账务包括押金等
	 * @param l入住记录
	 * @author zhugb
	 * */
	public List<TbAccounts> queryAccountsList(Living l);
	/**查询不包括押金、续存的消费记录
	 * @param l入住记录
	 * @author zhugb
	 * */
	public List<TbAccounts> queryAccountsNotDeposit(Living l);
	/**
	 * 查询单个入住的押金
	 * **/
    @Deprecated
	public int querySingleDeposit(Living l);
	/**
	 * 根据物品的类别查询物品
	 * @param type '消费'、'借用'、 null 查询全部
	 * @author zhugb
	 * **/
	/**
	 * 查询已经结账的消费
	 * @param 是否为正数返回
	 * */
    @Deprecated
	public int queryPayed(Living l,boolean isPositive );
	public List<TbGoods> queryGoods(String type);
	
	public LivingSpecifics querySpecifices(String livingId,String type);
	
	public List<Living> queryTeamLiving(String serialNumber,String livingId);
	
	public List<Living> listCurrentBasicLivings();
}
